/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.upc.clase.demo.dao.impl;

import edu.upc.clase.demo.dao.TipoUsuarioDao;
import edu.upc.clase.demo.dao.UsuarioDao;
import edu.upc.clase.demo.entity.Local;
import edu.upc.clase.demo.entity.TipoUsuario;
import java.util.List;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.stereotype.Repository;

/**
 *
 * @author Cesar
 */
@Repository
public class TipoUsuarioDaoImpl extends JdbcDaoSupport implements TipoUsuarioDao {
    @Autowired
    public TipoUsuarioDaoImpl(DataSource dataSource) {
        
        setDataSource(dataSource);
    }

    @Override
    public Integer insertar(TipoUsuario tipoUsuario) {
        getJdbcTemplate().update(
      "insert into tipoUsuario (nombreTipoUsuario) values (?)",
      tipoUsuario.getNombreTipoUsuario());
      return getJdbcTemplate().queryForInt("select last_insert_id()");
    }

    @Override
    public void actualizar(TipoUsuario tipoUsuario) {
        getJdbcTemplate().update(
                "update tipoUsuario set nombreTipoUsuario=? where idTipoUsuario = ?",
               tipoUsuario.getNombreTipoUsuario(), tipoUsuario.getIdTipoUsuario());    
    }

    @Override
    public void eliminar(TipoUsuario tipoUsuario) {
        getJdbcTemplate().update(
     "delete from tipoUsuario where idTipoUsuario = ?", tipoUsuario.getIdTipoUsuario());
    }

    @Override
    public List<TipoUsuario> buscarTodos() {
        return getJdbcTemplate().query(
       "select idTipoUsuario,nombreTipoUsuario from tipoUsuario",
       new BeanPropertyRowMapper<TipoUsuario>(TipoUsuario.class));
    }

    @Override
    public TipoUsuario buscar(Integer id) {
        try {
        return getJdbcTemplate().queryForObject(
         "select idTipoUsuario,nombreTipoUsuario from tipoUsuario where idTipoUsuario=?",
         new BeanPropertyRowMapper<TipoUsuario>(TipoUsuario.class), id);
        } catch (EmptyResultDataAccessException e) {
            return null;
        }
    }

   
 
    
}
